import { IParam } from '../../common';
import { IKanBanAbility } from '../ability';
import { IKanBanStore } from '../store';
import { IMDCtrlController } from './i-md-ctrl-controller';

/**
 * 看板部件控制器接口
 *
 * @export
 * @interface IKanBanController
 * @extends {ICtrlController}
 */
export interface IKanBanController<
	S extends IKanBanStore,
	A extends IKanBanAbility
> extends IMDCtrlController<S, A> {
	/**
	 * 看板部件项单击
	 *
	 * @param {IParam} item
	 * @param {MouseEvent} event
	 * @memberof IDataViewCtrlController
	 */
	itemClick(item: IParam, event: MouseEvent): void;

	/**
	 * 看板部件项双击
	 *
	 * @param {IParam} item
	 * @param {MouseEvent} event
	 * @memberof IDataViewCtrlController
	 */
	itemDbClick(item: IParam, event: MouseEvent): void;

	/**
	 * 拖动
	 *
	 * @param {*} evt
	 * @param {string} name
	 * @memberof IKanBanController
	 */
	dragChange(evt: any, name: string): void;
}
